package com.supplychain.financial.parent.api;

import com.supplychain.financial.parent.common.exception.CustomException;
import net.sf.json.JSONObject;

import java.util.List;
import java.util.Map;

/**
 * 创建人：lt
 * 创建时间：15:14 2018/1/25
 */
public interface KtCountService {
    //科泰数据
	List<Map<String, String>> findProductType(String levelDeep); //查找商品类型
	List<Map<String, String>> findShopName(); //查找商品类型
	List<Map<String, String>> findArea(Map<String, String> parameter); //查找区域列表
	List<Map<String, String>> findSupplierName(String typeId); //查找商品类型
	List<Map<String, String>> findSourceArea(); //查找商品产地
	JSONObject getktInstore(Long page, Long row, String filters, String sortName, String sortOrder);
	List<Map<String, Object>> selectKtInstoreForExcel(Map<String, String> parameter);
    List<Map<String, Object>> getKtCollect(Map<String, String> parameter);  //查询汇总单数据
    List<Map<String, Object>> getKtInsCargo(Map<String, String> parameter);  //查询采购数据
    List<Map<String, Object>> getKtOutCargo(Map<String, String> parameter);  //查询退货数据
    List<Map<String, Object>> getKtShipmentOrderByTime(Map<String, String> stringMap) throws CustomException;  //扫码出货数据
    List<Map<String, Object>> gatKtClassifiedTobaccoSales(Map<String, String> parameter);  //分类烟销售量数据
    List<Map<String, Object>> findShipmentOrderByLsatCreateTime(Map<String, String> params) throws CustomException;  //获取时实数据扫码出货数据
    List<Map<String, Object>> getClerks(Map<String, String> parameter);
    //库存明细汇总
    JSONObject getStockItem(Map<String, String> params, int SummaryType) throws CustomException;

    JSONObject getSellItem(Map<String, String> params, int SummaryType) throws CustomException;

    JSONObject getInstockItem(Map<String, String> params, int summaryType) throws CustomException;

    List<Map<String,Object>> getShopNameToSelect(Map<String, String> params) throws CustomException;

    JSONObject getKtProdInfo(Long page, Long pageSize, String filters, String sortName, String sortOrder);
    JSONObject getKtPss(Map<String, String> params, int searchType);
    JSONObject getKtInOutInfo(Long page, Long pageSize, String filters, String sortName, String sortOrder);

    JSONObject getKtCollectMoney(Map<String, String> params, int searchType);
    //资金对账表
    JSONObject ktMoneyPaysave(Long offset, Long limit, String filters, int searchType, String sortName, String sortOrder);
    //商品库存分析
    JSONObject getKtSsAnalyse(Map<String, String> parameter);
    //客户经理绩效统计
    JSONObject getCmPerformance(Map<String, String> parameter);
    //零售户户支付情况查询
    JSONObject getRetailerPayCond(Map<String, String> params);
    //跨行计算日报
	JSONObject listIBCPDaily(Map parameter);
	//跨行交易记录查询
	JSONObject listTrans(Map<String, String> parameter);
	JSONObject listMultBind(Map<String, String> parameter);

    List<Map<String,Object>> getKtTobaccoOrder(Map parameter); //店铺卷烟订购表

    /**
     * 保存店铺卷烟订购表
     * @param parameter
     */
    void saveKtTobaccoOrder(Map parameter);

    public void saveSingleKtTobaccoOrder(Map parameter);

    Map<String,Object> getXYShopTobacco(Map parameter);

    void saveShopTobaccoRequirement(Map parameter);

    Map<String,Object> getShopStockOrSales(Map parameter);

	List<Map<String, Object>> tablesToExcel(Map parameter);

    //页脚统计
    Map<String,Object> getStatisPss(String[] ColsName, Map<String, String> params);
	Map<String,Object> getStatisInstore(String[] ColsName, String filters);
	Map<String,Object> getStatisProdInfo();
	Map<String,Object> getStatisInOut(String[] ColsName, String filters);
	Map<String,Object> getStatisCollectMoney(String[] ColsName, Map<String, String> params, int searchType);
	Map<String,Object> getStatisStockItem(String[] ColsName, Map<String, String> params);
	Map<String,Object> getStatisSellItem(String[] ColsName, Map<String, String> params);
	Map<String,Object> getStatisInstockItem(String[] ColsName, Map<String, String> params);
	Map<String, Object> getStatisCmp(String[] ColsName, Map<String, String> params);
	public List<Map<String,Object>> getTOrderItemShopAllDay(Map<String, String> params, int searchType);

	/**
	 * 销售汇总列表
	 * @param parameter
	 * @return
	 */
	JSONObject salesSummaryList(Map<String, String> parameter);
	/**
	 * 获取区域
	 * @return
	 */
	JSONObject getArea(Map parameter);
	/**
	 * 获取店铺
	 * @return
	 */
	JSONObject getShop(Map parameter);
	/**
	 * 获取商品类型
	 * @return
	 */
	JSONObject getGoodsType();
	/**
	 * 获取品牌
	 * @return
	 */
	JSONObject getBrand();
	/**
	 * 获取供应商
	 * @return
	 */
	JSONObject getSupplier();
	/**
	 * 销售流水表
	 * @param parameter
	 * @return
	 */
	JSONObject salesFlowList(Map<String, String> parameter);
	/**
	 * 商品类型与品牌级联
	 * @return
	 */
	JSONObject prodTypeLinkBrand(Map<String, String> parameter);

	/**
	 * 库存查询报表
	 * @param parameter
	 * @return
	 */
	JSONObject storeQueryList(Map<String, String> parameter);

	JSONObject getktTaskAnalyse(Map<String, String> param);

	JSONObject listMultBindTrans(Map<String, String> params);
}
